Skip to content

More preparations for overlays - #913

Merged
mahkoh merged 13 commits into
masterfrom
jorth/overlay-preparation-2
May 3, 2026
Merged

More preparations for overlays#913
mahkoh merged 13 commits into
masterfrom
jorth/overlay-preparation-2

Conversation

@mahkoh

@mahkoh mahkoh commented May 3, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings May 3, 2026 19:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the compositor for future “overlay” work by introducing a workspace “type” concept (currently only Normal) and plumbing it through workspace creation/selection, session-management persistence, and tree-query/CLI introspection.

Changes:

  • Introduce WorkspaceType on WorkspaceNode and rename/create APIs around “normal” workspaces (ensure_normal_workspace, create_normal_workspace, etc.).
  • Persist/restore workspace type in session-management toplevel state (wire format bumped to V2).
  • Expose workspace type via jay_tree_query (wire event + CLI JSON/text output) and add a TOML config/spec placeholder for workspaces.

Reviewed changes

Copilot reviewed 39 out of 39 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
wire/jay_tree_query.txt Adds workspace_type event (since v31) to the tree-query wire spec.
toml-spec/spec/spec.yaml Adds Config.workspaces map and introduces Workspace type stub.
toml-spec/spec/spec.generated.md Regenerates markdown docs to include workspaces and Workspace type.
toml-spec/spec/spec.generated.json Regenerates JSON schema to include workspaces and Workspace type.
toml-config/src/lib.rs Updates action execution to resolve workspace IDs from WorkspaceSlot instead of names.
toml-config/src/config/parsers/workspace.rs New parser scaffolding for [workspaces] table + workspace slot tracking.
toml-config/src/config/parsers/config.rs Wires workspaces into top-level config parsing.
toml-config/src/config/parsers/action.rs Switches workspace-referencing actions to use WorkspaceSlot instead of get_workspace(name).
toml-config/src/config/parsers.rs Exposes new workspace parser module.
toml-config/src/config/context.rs Adds Context.workspaces storage for parsed workspace slots.
toml-config/src/config.rs Assigns real jay_config::Workspace IDs to parsed workspace slots during finalization.
src/tree/workspace.rs Introduces WorkspaceType and stores it on WorkspaceNode; updates ctor signature.
src/tree/toplevel.rs Tracks workspace type on toplevels and uses it when deriving node layer.
src/tree/output.rs Renames workspace creation helpers to “normal” variants and routes behavior via WorkspaceType.
src/tree/float.rs Tracks workspace type for floats and selects appropriate stacking list based on type.
src/tree/display.rs Updates workspace drag-destination API to pass a &WorkspaceNode source.
src/tree/container.rs Updates new-workspace creation path to use ensure_normal_workspace.
src/tools/tool_client.rs Bumps bound jay_compositor version cap to 31.
src/state.rs Threads workspace type through map-restore and State::show_workspace; uses normal-workspace helpers.
src/sm/sm_wire/sm_wire_toplevel.rs Adds SM wire V2 component to serialize/deserialize workspace_ty.
src/sm/sm_jobs/sm_toplevel_acquire.rs Restores workspace_ty into in-memory session state on acquire.
src/sm.rs Tracks workspace type in session state updates and persists it to SQLite job payload.
src/it/tests/t0059_sm_background_ws.rs Updates test to use create_normal_workspace.
src/it/tests/t0058_sm_parent.rs Updates test to use create_normal_workspace.
src/it/tests/t0057_sm_floating.rs Updates test to use create_normal_workspace.
src/it/tests/t0056_sm_fullscreen.rs Updates test to use create_normal_workspace.
src/it/tests/t0055_sm_basic.rs Updates test to use create_normal_workspace.
src/ifs/zwlr_foreign_toplevel_handle_v1.rs Updates fullscreen path to use ensure_normal_workspace.
src/ifs/workspace_manager/ext_workspace_manager_v1.rs Updates workspace creation to call create_normal_workspace.
src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs Updates fullscreen/map-child paths to use ensure_normal_workspace.
src/ifs/wl_surface/xdg_surface.rs Tracks workspace type for XDG surfaces and adjusts popup stacking accordingly.
src/ifs/wl_seat/pointer_owner.rs Updates several new-workspace paths + drag destination call signature.
src/ifs/wl_seat.rs Updates workspace focus logic and “neighbor output” workspace creation to normal-workspace helpers.
src/ifs/jay_tree_query.rs Adds workspace_type event emission (since v31) to tree query responses.
src/ifs/jay_compositor.rs Bumps jay_compositor global protocol version to 31.
src/control_center/cc_workspaces.rs Displays workspace type alongside workspace name in the control center UI.
src/config/handler.rs Threads workspace type through config IPC workspace identity + show/set operations.
src/cli/tree.rs Captures/prints workspace_type from tree query (text + JSON).
src/cli/json.rs Adds workspace_type field to JSON tree node output.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/ifs/jay_tree_query.rs
Comment thread toml-spec/spec/spec.generated.md
@mahkoh
mahkoh merged commit 7d65326 into master May 3, 2026
16 checks passed
@mahkoh
mahkoh deleted the jorth/overlay-preparation-2 branch May 3, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants